home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / New System Software Extensions / QuickDraw™ 3D 1.0 / Development / Interfaces / QD3DStyle.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-02  |  8.1 KB  |  294 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DStyle.h                                                 **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Style types and routines                                  **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1992-1995 Apple Computer, Inc.  All rights reserved.     **
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DStyle_h
  15. #define QD3DStyle_h
  16.  
  17. #ifndef QD3D_h
  18. #include "QD3D.h"
  19. #endif  /*  QD3D_h  */
  20.  
  21. #if PRAGMA_ONCE
  22.     #pragma once
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif    /* __cplusplus */
  28.  
  29.  
  30. /******************************************************************************
  31.  **                                                                             **
  32.  **                    Style Base Class Routines                                 **
  33.  **                                                                             **
  34.  *****************************************************************************/
  35.  
  36. QD3D_EXPORT TQ3ObjectType Q3Style_GetType(
  37.     TQ3StyleObject            style);
  38.  
  39. QD3D_EXPORT TQ3Status Q3Style_Submit(
  40.     TQ3StyleObject            style, 
  41.     TQ3ViewObject            view);
  42.  
  43.  
  44. /******************************************************************************
  45.  **                                                                             **
  46.  **                                 Subdivision                                 **
  47.  **                                                                             **
  48.  *****************************************************************************/
  49.  
  50. typedef enum TQ3SubdivisionMethod {
  51.     kQ3SubdivisionMethodConstant,
  52.     kQ3SubdivisionMethodWorldSpace,
  53.     kQ3SubdivisionMethodScreenSpace
  54. } TQ3SubdivisionMethod;
  55.  
  56.  
  57. typedef struct TQ3SubdivisionStyleData {
  58.     TQ3SubdivisionMethod            method;
  59.     float                            c1;
  60.     float                            c2;
  61. } TQ3SubdivisionStyleData;
  62.  
  63.  
  64. QD3D_EXPORT TQ3StyleObject Q3SubdivisionStyle_New(
  65.     const TQ3SubdivisionStyleData    *data);
  66.  
  67. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_Submit(
  68.     const TQ3SubdivisionStyleData    *data,
  69.     TQ3ViewObject                    view);
  70.  
  71. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_SetData(
  72.     TQ3StyleObject                    subdiv,
  73.     const TQ3SubdivisionStyleData    *data);
  74.  
  75. QD3D_EXPORT TQ3Status Q3SubdivisionStyle_GetData(
  76.     TQ3StyleObject                    subdiv,
  77.     TQ3SubdivisionStyleData            *data);
  78.  
  79.  
  80. /******************************************************************************
  81.  **                                                                             **
  82.  **                                Pick ID                                         **
  83.  **                                                                             **
  84.  *****************************************************************************/
  85.  
  86. QD3D_EXPORT TQ3StyleObject Q3PickIDStyle_New(
  87.     unsigned long            id);
  88.     
  89. QD3D_EXPORT TQ3Status Q3PickIDStyle_Submit(
  90.     unsigned long            id,
  91.     TQ3ViewObject            view);
  92.  
  93. QD3D_EXPORT TQ3Status Q3PickIDStyle_Get(
  94.     TQ3StyleObject            pickIDObject,
  95.     unsigned long            *id);
  96.  
  97. QD3D_EXPORT TQ3Status Q3PickIDStyle_Set(
  98.     TQ3StyleObject            pickIDObject,
  99.     unsigned long            id);
  100.     
  101.     
  102. /******************************************************************************
  103.  **                                                                             **
  104.  **                                Pick Parts                                     **
  105.  **                                                                             **
  106.  *****************************************************************************/
  107.  
  108. typedef enum TQ3PickPartsMasks {
  109.     kQ3PickPartsObject        = 0,
  110.     kQ3PickPartsMaskFace    = 1 << 0,
  111.     kQ3PickPartsMaskEdge    = 1 << 1,
  112.     kQ3PickPartsMaskVertex    = 1 << 2
  113. } TQ3PickPartsMasks;
  114.  
  115. typedef unsigned long TQ3PickParts;
  116.  
  117. QD3D_EXPORT TQ3StyleObject Q3PickPartsStyle_New(
  118.     TQ3PickParts            parts);
  119.     
  120. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Submit(
  121.     TQ3PickParts            parts,
  122.     TQ3ViewObject            view);
  123.  
  124. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Get(
  125.     TQ3StyleObject            pickPartsObject,
  126.     TQ3PickParts            *parts);
  127.  
  128. QD3D_EXPORT TQ3Status Q3PickPartsStyle_Set(
  129.     TQ3StyleObject            pickPartsObject,
  130.     TQ3PickParts            parts);
  131.  
  132.  
  133. /******************************************************************************
  134.  **                                                                             **
  135.  **                        Receive Shadows                                         **
  136.  **                                                                             **
  137.  *****************************************************************************/
  138.  
  139. QD3D_EXPORT TQ3StyleObject Q3ReceiveShadowsStyle_New(
  140.     TQ3Boolean                receives);
  141.     
  142. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Submit(
  143.     TQ3Boolean                receives,
  144.     TQ3ViewObject            view);
  145.  
  146. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Get(
  147.     TQ3StyleObject            styleObject,
  148.     TQ3Boolean                *receives);
  149.  
  150. QD3D_EXPORT TQ3Status Q3ReceiveShadowsStyle_Set(
  151.     TQ3StyleObject            styleObject,
  152.     TQ3Boolean                receives);
  153.  
  154.  
  155. /******************************************************************************
  156.  **                                                                             **
  157.  **                            Fill Styles                                         **
  158.  **                                                                             **
  159.  *****************************************************************************/
  160.  
  161. typedef enum TQ3FillStyle {
  162.     kQ3FillStyleFilled,
  163.     kQ3FillStyleEdges,
  164.     kQ3FillStylePoints
  165. } TQ3FillStyle;
  166.  
  167.  
  168. QD3D_EXPORT TQ3StyleObject Q3FillStyle_New(
  169.     TQ3FillStyle             fillStyle);
  170.  
  171. QD3D_EXPORT TQ3Status Q3FillStyle_Submit(
  172.     TQ3FillStyle             fillStyle,
  173.     TQ3ViewObject             view);
  174.  
  175. QD3D_EXPORT TQ3Status Q3FillStyle_Get(
  176.     TQ3StyleObject            styleObject,
  177.     TQ3FillStyle            *fillStyle);
  178.  
  179. QD3D_EXPORT TQ3Status Q3FillStyle_Set(
  180.     TQ3StyleObject            styleObject,
  181.     TQ3FillStyle            fillStyle);
  182.     
  183.     
  184. /******************************************************************************
  185.  **                                                                             **
  186.  **                            Backfacing Styles                                 **
  187.  **                                                                             **
  188.  *****************************************************************************/
  189.  
  190. typedef enum TQ3BackfacingStyle {
  191.     kQ3BackfacingStyleBoth,
  192.     kQ3BackfacingStyleRemove,
  193.     kQ3BackfacingStyleFlip
  194. } TQ3BackfacingStyle;
  195.  
  196. QD3D_EXPORT TQ3StyleObject Q3BackfacingStyle_New(
  197.     TQ3BackfacingStyle        backfacingStyle);
  198.  
  199. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Submit(
  200.     TQ3BackfacingStyle        backfacingStyle,
  201.     TQ3ViewObject            view);
  202.  
  203. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Get(
  204.     TQ3StyleObject            backfacingObject,
  205.     TQ3BackfacingStyle        *backfacingStyle);
  206.  
  207. QD3D_EXPORT TQ3Status Q3BackfacingStyle_Set(
  208.     TQ3StyleObject            backfacingObject,
  209.     TQ3BackfacingStyle        backfacingStyle);
  210.  
  211.  
  212. /******************************************************************************
  213.  **                                                                             **
  214.  **                            Interpolation Types                                 **
  215.  **                                                                             **
  216.  *****************************************************************************/
  217.  
  218. typedef enum TQ3InterpolationStyle {
  219.     kQ3InterpolationStyleNone,
  220.     kQ3InterpolationStyleVertex,
  221.     kQ3InterpolationStylePixel
  222. } TQ3InterpolationStyle;
  223.  
  224. QD3D_EXPORT TQ3StyleObject Q3InterpolationStyle_New(
  225.     TQ3InterpolationStyle    interpolationStyle);
  226.  
  227. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Submit(
  228.     TQ3InterpolationStyle     interpolationStyle,
  229.     TQ3ViewObject            view);
  230.  
  231. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Get(
  232.     TQ3StyleObject            interpolationObject,
  233.     TQ3InterpolationStyle    *interpolationStyle);
  234.  
  235. QD3D_EXPORT TQ3Status Q3InterpolationStyle_Set(
  236.     TQ3StyleObject            interpolationObject,
  237.     TQ3InterpolationStyle    interpolationStyle);
  238.  
  239.  
  240. /******************************************************************************
  241.  **                                                                             **
  242.  **                                Highlight Style                                 **
  243.  **                                                                             **
  244.  *****************************************************************************/
  245.  
  246. QD3D_EXPORT TQ3StyleObject Q3HighlightStyle_New(
  247.     TQ3AttributeSet            highlightAttribute);
  248.     
  249. QD3D_EXPORT TQ3Status Q3HighlightStyle_Submit(
  250.     TQ3AttributeSet            highlightAttribute,
  251.     TQ3ViewObject            view);
  252.  
  253. QD3D_EXPORT TQ3Status Q3HighlightStyle_Get(
  254.     TQ3StyleObject            highlight,
  255.     TQ3AttributeSet            *highlightAttribute);
  256.  
  257. QD3D_EXPORT TQ3Status Q3HighlightStyle_Set(
  258.     TQ3StyleObject            highlight,
  259.     TQ3AttributeSet            highlightAttribute);
  260.  
  261.  
  262. /******************************************************************************
  263.  **                                                                             **
  264.  **                            FrontFacing Direction Styles                     **
  265.  **                                                                             **
  266.  *****************************************************************************/
  267.  
  268. typedef enum TQ3OrientationStyle{
  269.     kQ3OrientationStyleCounterClockwise,
  270.     kQ3OrientationStyleClockwise
  271. } TQ3OrientationStyle;
  272.  
  273. QD3D_EXPORT TQ3StyleObject Q3OrientationStyle_New(
  274.     TQ3OrientationStyle        frontFacingDirection);
  275.  
  276. QD3D_EXPORT TQ3Status Q3OrientationStyle_Submit(
  277.     TQ3OrientationStyle        frontFacingDirection,
  278.     TQ3ViewObject            view);
  279.  
  280. QD3D_EXPORT TQ3Status Q3OrientationStyle_Get(
  281.     TQ3StyleObject            frontFacingDirectionObject,
  282.     TQ3OrientationStyle        *frontFacingDirection);
  283.  
  284. QD3D_EXPORT TQ3Status Q3OrientationStyle_Set(
  285.     TQ3StyleObject            frontFacingDirectionObject,
  286.     TQ3OrientationStyle        frontFacingDirection);
  287.  
  288.  
  289. #ifdef __cplusplus
  290. }
  291. #endif    /* __cplusplus */
  292.  
  293. #endif  /*  QD3DStyle_h  */
  294.